package board.model.service;

import java.sql.SQLException;
import java.util.ArrayList;

import board.model.dao.BoardDAO;
import board.to.BoardTO;
import board.to.ListTO;
import board.to.PagingTO;
import board.util.Utilities;

public class BoardService {
	private BoardDAO dao;
	public BoardService(BoardDAO dao){
		this.dao = dao;
	}
	//글입력 처리를 하는 Business 메소드 : bto : title,write,content
	public void writeContent(BoardTO bto) throws SQLException{
		String now = Utilities.getNow();
		bto.setWritedate(now); //bto에 작성일시를 설정
		bto.setContent(Utilities.changeContentForDB(bto.getContent())); 
		dao.insertContentForNewCount(bto);
	}
	

	public BoardTO getContentByNO(int no) throws SQLException{
		//1. 조회수 증가 - dao.updateViewCount()
		
		//2. no로 글 정보 조회  - dao.selectContentByNO()
		
		//2-1 writedate를 yyyy.MM.dd HH:mm:ss 형식으로 변경
		
		return null;
	}
	public BoardTO getContentByNoForForm(int no) throws SQLException{
		//1. no값으로 글 조회 - 	dao.selectContentByNO()
		//2. content를 textarea용으로 변경
		return null;
	}
	public void modifyContent(BoardTO bto) throws SQLException{
		//1. property변경 - content, writedate
		
		//2. 수정 처리 - dao.updateContent()
		
	}
	public void deleteContentByNO(int no) throws SQLException{
		//1. 삭제 처리 - dao.deleteContentByNO() 이용
	}
	public void replyContent(BoardTO bto) throws SQLException{
		//1. DB에 같은 refamily의 restep들을 1씩 증가시킨다.
		
		//2. bto의 restep, relevel을 1 증가시킨다.
		
		//3. insert할 글 번호를 가져온와 bto에 넣는다. 
		
		//4. BoardDTO에 no, writeDate와 content는 DB 저장용으로 변경한다.
		
		
		//5. 답변글 새글로 등록 - dao.insertContent() 이용
		
		
	}
	//페이징 리스트 조회
	public ListTO getBoardListByPage(int page) throws SQLException{
		//1. dao로부터 전체 글내용을 ArrayList로 조회 - dao.selectBoardListByPage()
		
		//2 반복문을 이용해 list내의 BoardDTO객체들의 writedate를 변경
		
		//3. PagingDTO객체를 생성
		
		// 	3.1. 총게시물 수를 리턴 - dao.selectTotalContent() 
		
		// 3.2 PagingTO 객체 생성

		//4. ArrayList, PagingDTO객체를 이용해 ListDTO를 생성해서 return
		return null;
	}
}






